#ifndef ILINKED_DOCUMENT_H
#define ILINKED_DOCUMENT_H

#include "idocument.h"

#include <QtCore/QList>

namespace core
{

typedef QStringList DocumentCategories;

class ILinkedDocument : public IDocument
{
    Q_OBJECT

public:
    virtual QList<QSharedPointer<IDocument> > links() const = 0;
    virtual QList<MimeType> linksTo() const = 0;

    virtual void addLink(const QSharedPointer<IDocument>& document,
        bool projectIsOpening = false) = 0;
    virtual void removeLink(const QSharedPointer<IDocument>& document) = 0;

    virtual void refreshLinkedModels() = 0;

    virtual ~ILinkedDocument() {}
};

} // namespace core

#endif
